import sys
import os

def generar_binario(nombre_archivo, cantidad_bytes):
    try:
        cantidad = int(cantidad_bytes)
        # Crear el archivo binario
        with open(nombre_archivo, "wb") as f:
            f.write(bytes(cantidad))
        print(f"Archivo binario '{nombre_archivo}' creado con {cantidad} bytes en cero.")

        # Crear subcarpeta 'txts' si no existe
        carpeta_txts = os.path.join(os.path.dirname(nombre_archivo), "txts")
        os.makedirs(carpeta_txts, exist_ok=True)

        # Obtener nombre sin extensión
        nombre_sin_ext = os.path.splitext(os.path.basename(nombre_archivo))[0]

        # Crear contenido del archivo de texto
        linea1 = "9                     EMPTY CONTAINER FILE\n"
        linea2 = f"{'0':<8}{str(cantidad):<8}{nombre_sin_ext:<15}\n"

        # Crear archivo .txt
        nombre_txt = os.path.join(carpeta_txts, nombre_sin_ext + ".txt")
        with open(nombre_txt, "w") as txt_file:
            txt_file.write(linea1)
            txt_file.write(linea2)
        print(f"Archivo de texto '{nombre_txt}' generado correctamente.")

    except ValueError:
        print("Error: La cantidad de bytes debe ser un número entero.")
    except Exception as e:
        print(f"Ocurrió un error: {e}")

if __name__ == "__main__":
    if len(sys.argv) != 3:
        print("Uso: python generar_binario.py archivo.bin cantidad_bytes")
    else:
        generar_binario(sys.argv[1], sys.argv[2])
